LVA Datenbanksysteme (LU 1.0 181.129)
Wintersemester 2005/2006
Gruppe B - Beispiel 1
Auction.com
Eine Datenbank für eine Internetauktionsplattform soll entworfen
werden.
- User werden durch einen eindeutigen Login identifiziert und haben
ein Passwort, eine eMail-Adresse, einen Namen, eine Adresse, eine
Kontonummer und ein Registrierungsdatum. Man unterscheidet 2
verschiedene User-Typen: die Bieter und die Anbieter. Anbieter haben
zusätzlich einen Kontostand und einen Status. (Anmerkung: der
Status könnte zB 'gesperrt', 'ermahnt', 'normal' oder
ähnliches sein!) Jeder User wird von genau einem Mitarbeiter
registriert.
- Der Status der einzelnen Anbieter kann außerdem beliebig
oft von einem Mitarbeiter geändert werden, dafür wird das
Datum mit Uhrzeit (Anmerkung: Uhrzeit wichtig für eindeutige
Identifizierung!) und der neue Status vermerkt. (Anmerkung: es soll
also eine "Geschichte" der Zustandsänderungen festgehalten werden,
wobei der aktuelle Zustand dem letzten Eintrag dieser Geschichte
entspricht.)
- Mitarbeiter haben eine eindeutige Mitarbeiternummer, eine
Sozialversicherungsnummer, eine Kontonummer und ein Gehalt. Sie
können beliebig viele User registrieren, sowie beliebig oft die
Zustände einzelner Anbieter ändern. Mitarbeiter haben
außerdem keine oder mehrere Rechte, welche wiederum eine
eindeutige Bezeichnung besitzen.
- Anbieter können beliebig viele Auktionen ausrufen, umgekehrt
bezieht sich jede Auktion auf genau einen Anbieter.
- Auktionen haben eine eindeutige Identifikationsnummer, einen
Rufpreis, ein Beginn- und ein EndDatum, sowie einen Eintrag der
über das aktuell höchste Gebot Auskunft gibt. Außerdem
haben Auktionen noch ein Attribut "flag", dass immer mit "false"
initialisiert wird. (Anmerkung: Erklärung und Verwendung folgt in
Beispiel 2!)
Auktionen können einen oder noch keinen Höchstbieter haben.
(Anmerkung: Nullwerte vermeiden!)
Spezielle Auktionen sind jene mit Sofortkaufoption, für diese wird
zusätzlich der Kaufpreis gespeichert. (Anmerkung: der Kaufpreis
bei einer Auktion mit Sofortkaufoption stellt gleichzeitig das
höchstmögliche Gebot dar, wenn dieses also im Zuge der
Versteigerung erreicht wird, ist die Auktion sofort beendet! -
genaueres folgt
ebenfalls in Beispiel 2)
- Bieter können bei beliebig vielen Auktionen mitbieten, bei
jedem Gebot wird die Gebotshöhe, sprich der gebotene Betrag, sowie
das Datum (mit Uhrzeit) gespeichert. (Anmerkung: Bieter können
natürlich mehrmals bei der selben Auktion mitsteigern, die Gebote
unterscheiden sich dann eindeutig durch Datum und Uhrzeit!)
- Jedes Ding hat eine eindeutige Identifikationsnummer, eine
Beschreibung und einen Hersteller. Bei einer Auktion können ein
oder mehrere Dinge versteigert werden, umgekehrt kann ein Ding an einer
oder keiner Aktion teilnehmen. (Anmerkung: es gibt also auch Dinge in
der DB, die zum aktuellen Zeitpunkt nicht versteigert werden. Nullwerte
vermeiden!) Bei den DIngen werden außerdem Dinge Neuwaren und
Altwaren unterschieden,
wobei für Altwaren zusätzlich der Zustand
gespeichert werden soll.
- Jedes Ding ist einer oder mehreren Kategorien zugeordnet.
Kategorien werden durch ihren eindeutige Bezeichnung identifiziert und
haben zusätzlich eine allgemeine Beschreibung.
- Bilder sind durch ihren Pfad und ihren Dateinamen eindeutig
unterscheidbar, zusätzlich ist das Format und die Größe
bekannt. Jedes einzelne Bild ist genau einem Ding zugeordnet. Umgekehrt
kann ein Ding natürlich mehrere Bilder haben.